/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package byblos.apresentacao.email;

import byblos.apresentacao.configuracao.MensagemEmail;
import byblos.apresentacao.idioma.InterceptadorIdioma;
import byblos.negocio.Idioma;
import byblos.negocio.cliente.Cliente;
import byblos.negocio.cliente.ClienteUtil;
import byblos.negocio.pacote.Pacote;
import byblos.persistencia.DAO;
import org.vraptor.annotations.Component;
import org.vraptor.annotations.In;
import org.vraptor.annotations.InterceptedBy;
import org.vraptor.annotations.Parameter;

/**
 *
 * @author Marco Aurélio
 */
@Component
@InterceptedBy(InterceptadorIdioma.class)
public class EmailComponent {

    @In
    private Idioma idioma;
    @Parameter
    private String nome;
    @Parameter
    private String emailCliente;
    @Parameter
    private String mensagem;
    @Parameter
    private boolean cadastroCliente;
    @Parameter
    private String telefone;
    @Parameter
    private String nomeAmigo;
    @Parameter
    private String emailAmigo;
    @Parameter
    private int idPacote;

    public void sendFriend() {
        MensagemEmail mensagem = new MensagemEmail(".:Byblos:.", construirTextoSendFriend());
        mensagem.setFrom(emailCliente);
        mensagem.addTo(emailAmigo);
        mensagem.enviar();
    }

    public void enviar() {
        if (cadastroCliente) {
            new ClienteUtil().adicionarCliente(construirCliente());
        }

        MensagemEmail mensagem = new MensagemEmail("Fale Conosco - Site", construirTextoFaleConosco());
        mensagem.setFrom(emailCliente);
        mensagem.setToAdm();
        mensagem.enviar();
    }

    private Cliente construirCliente() {
        Cliente c = new Cliente();
        c.setEmail(emailCliente);
        c.setNome(nome);
        c.setTelefone(telefone);
        c.setIdioma(idioma);
        return c;
    }

    private String construirTextoFaleConosco() {
        mensagem = mensagem.replaceAll("\n", "<br>");
        mensagem = mensagem.replaceAll("\r", "");
        String texto = this.mensagem + "<br><br>" + emailCliente;
        return texto;
    }

    private String construirTextoSendFriend() {
        Pacote pacote = new DAO().localizar(Pacote.class, idPacote);
        String texto = "<a href=\"http://www.byblospousada.com.br\">" +
                "<img src=\"http://www.byblospousada.com.br/byblos/imagens/logo.jpg\" border='0'/></a> " +
                "<br><br> Olá " + nomeAmigo + "<br><br> O " + nome + "(" + emailCliente + ") " +
                "indicou este pacote para você! <br><br> \"" + this.mensagem + "\"<br><br>" +
                "<a href=\"http://www.byblospousada.com.br/byblos/siteobjeto.visualizar.logic?id=" +
                pacote.getId() + "\">" + pacote.getNome() + "</a>";

        return texto;
    }
}